import { IParam, EntityBase } from "@/core";
import { IIBIZSample0001 } from './interface/i-ibiz-sample-0001';
import IBIZSample0001Keys from './ibiz-sample-0001-keys';

/**
 * 示例实体01基类
 * 基于template/src/api/{{appEntities}}/{{appEntities}}-base.ts.hbs生成  
 *
 * @export
 * @abstract
 * @class IBIZSample0001Base
 * @extends { EntityBase }
 * @implements { IIBIZSample0001 }
 */
export abstract class IBIZSample0001Base extends EntityBase implements IIBIZSample0001 {
	/**
	 * 实体名称
	 *
	 * @readonly
	 * @type {string}
	 * @memberof IBIZSample0001Base
	 */
	get srfdename(): string {
		return 'IBIZSAMPLE0001';
	}

	/**
     * 当前实体所有属性
     *
     * @protected
     * @type {string[]}
     * @memberof IBIZSample0001Base
     */
    protected get keys(): string[] {
        return IBIZSample0001Keys;
    }

	/**
	 * Creates an instance of ConstactOppoBase.
	 * @param {*} [data]
	 * @memberof IBIZSample0001Base
	 */
	constructor(data?: any) {
		super();
		this.setData(data);
	}

	/**
	 * 文本，可指定长度
	 **/
	field01?: any;
	
	/**
	 * 长文本，长度1000
	 **/
	field02?: any;
	
	/**
	 * 长文本，没有长度限制
	 **/
	field03?: any;
	
	/**
	 * HTML文本，没有长度限制
	 **/
	field04?: any;
	
	/**
	 * 整型
	 **/
	field05?: any;
	
	/**
	 * 浮点
	 **/
	field06?: any;
	
	/**
	 * 数值
	 **/
	field07?: any;
	
	/**
	 * 日期时间型
	 **/
	field08?: any;
	
	/**
	 * 日期型
	 **/
	field09?: any;
	
	/**
	 * 时间型
	 **/
	field10?: any;
	
	/**
	 * 是否逻辑
	 **/
	field11?: any;
	
	/**
	 * 真假逻辑
	 **/
	field12?: any;
	
	/**
	 * 单项选择(数值)
	 **/
	field13?: any;
	
	/**
	 * 单项选择(文本值)
	 **/
	field14?: any;
	
	/**
	 * 多项选择(数值)
	 **/
	field15?: any;
	
	/**
	 * 多项选择(文本值)
	 **/
	field16?: any;
	
	/**
	 * 选择项文本
	 **/
	field24?: any;
	
	/**
	 * 数字串业务标识，数字类型，用户可见
	 **/
	field17?: any;
	
	/**
	 * 字符串业务标识，文本类型，用户可见
	 **/
	field18?: any;
	
	/**
	 * 货币
	 **/
	field19?: any;
	
	/**
	 * 货币单位
	 **/
	field20?: any;
	
	/**
	 * 出生日期
	 **/
	field21?: any;
	
	/**
	 * 电子邮件
	 **/
	field22?: any;
	
	/**
	 * 工作流处理状态
	 **/
	field27?: any;
	
	get srfmajortext(): string {
		return this.ibizsample0001name;
	}

	set srfmajortext(val: string) {
		this.ibizsample0001name = val;
	}
	/**
	 * 名称
	 **/
	ibizsample0001name?: any;
	
	/**
	 * 建立人
	 **/
	createman?: any;
	
	/**
	 * 更新时间
	 **/
	updatedate?: any;
	
	/**
	 * 更新人
	 **/
	updateman?: any;
	
	get srfkey(): string {
		return this.ibizsample0001id;
	}

	set srfkey(val: string) {
		this.ibizsample0001id = val;
	}

	/**
	 * IBIZSAMPLE0001标识
	 **/
	ibizsample0001id?: any;
	
	/**
	 * 建立时间
	 **/
	createdate?: any;
	
	/**
	 * 大整型
	 **/
	field?: any;
	
	/**
	 * 大数值
	 **/
	field2?: any;
	
	/**
	 * 首页图表数据源标识
	 **/
	ibizsample0002id?: any;
	
	/**
	 * 示例实体02名称
	 **/
	ibizsample0002name?: any;
	
	/**
	 * 颜色
	 **/
	color?: any;
	
	/**
	 * IP地址
	 **/
	ip?: any;
	
	/**
	 * 地址信息
	 **/
	address?: any;
	
	/**
	 * 经度
	 **/
	longitude?: any;
	
	/**
	 * 纬度
	 **/
	latitude?: any;
	
	/**
	 * 图片
	 **/
	picture?: any;
	
	/**
	 * 城市
	 **/
	city?: any;
	
	/**
	 * 磁盘图片
	 **/
	diskimg?: any;
	
	/**
	 * 属性3
	 **/
	field3?: any;
	
	/**
	 * 属性4
	 **/
	field4?: any;
	
	/**
	 * 属性5
	 **/
	field5?: any;
	
	/**
	 * 属性6
	 **/
	field6?: any;
	
	/**
	 * 属性7
	 **/
	field7?: any;
	
	/**
	 * 属性8
	 **/
	field8?: any;
	
	/**
	 * 属性9
	 **/
	field9?: any;
	
	/**
	 * 属性23
	 **/
	field23?: any;
	
	/**
	 * 属性25
	 **/
	field25?: any;
	
	/**
	 * 属性26
	 **/
	field26?: any;
	
	/**
	 * 属性28
	 **/
	field28?: any;
	

	/**
	 * 重置实体数据
	 *
	 * @param {IParam} [data={}]
	 * @memberof IBIZSample0001Base
	 */
	reset(data: IParam = {}): void {
		super.reset(data);
		this.ibizsample0001name = data.ibizsample0001name || data.srfmajortext;
		this.ibizsample0001id = data.ibizsample0001id || data.srfkey;
	}
}